////https://www.luogu.com.cn/problem/P1164
//
////#include<iostream>
////#include<cstring>
////using namespace std;
////
////const int N = 110, M = 1e4 + 10;
////int a[N], dp[N][M];
////
////int main()
////{
////	int n, m; cin >> n >> m;
////	for (int i = 1; i <= n; i++) cin >> a[i];
////	dp[0][0] = 1;
////	for (int i = 1; i <= n; i++)
////	{
////		for (int j = 0; j <= m; j++)
////		{
////			dp[i][j] = dp[i - 1][j];
////			if (j >= a[i] && dp[i - 1][j - a[i]] > 0) dp[i][j] += dp[i - 1][j - a[i]];
////		}
////	}
////	cout << dp[n][m] << endl;
////	return 0;
////}
//
//#include<iostream>
//#include<cstring>
//using namespace std;
//
//const int N = 110, M = 1e4 + 10;
//int a[N], dp[M];
//
//int main()
//{
//	int n, m; cin >> n >> m;
//	for (int i = 1; i <= n; i++) cin >> a[i];
//	dp[0] = 1;
//	for (int i = 1; i <= n; i++)
//		for (int j = m; j >= a[i]; j--)
//			if (dp[j - a[i]] > 0) dp[j] += dp[j - a[i]];
//	cout << dp[m] << endl;
//	return 0;
//}